package com.bytz.modules.cms.reseller.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.bytz.modules.cms.reseller.entity.Reseller;
import com.bytz.modules.system.security.vo.LoginReseller;

import java.util.Collection;
import java.util.List;

/**
 * <p>
 * 莱宝CMS—经销商管理—经销商基本信息表 服务类
 * </p>
 *
 * @author KyleWang
 * @since 2022-10-10
 */
public interface IResellerService extends IService<Reseller> {

    /**
     * 通过名称获取
     */
    LoginReseller getForLogin(String username);

    /**
     * 检查经销商是否可以登录
     *
     * @param user     经销商
     * @param username 经销商登录名
     * @param log      是否记录日志
     * @return 是否成功
     */
    boolean checkReseller(LoginReseller user, String username, boolean log);

    /**
     * 根据经销商名称获取
     */
    List<Reseller> getByNames(Collection<String> resellerNames);

    /**
     * 根据经销商id更新密码
     *
     * @param id       经销商id
     * @param username 登录用户名
     * @param password 加密后的密码
     */
    boolean updatePassword(String id, String username, String password);

    /**
     * 获取经销商的等级，顿号隔开后更新到经销商表的levels字段
     */
    void resetLevels(String id);

    /**
     * 检查经销商是否需要输入支付口令
     */
    Boolean needPaymentPassword(String userId);
}
